package com.yxc.ejad.annotation;

import co.elastic.clients.elasticsearch._types.mapping.FieldType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * elasticsearch的字段注解，简易型
 *
 * @author: YXC
 * @time: 2024/2/1 16:59
 **/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface ElasticsearchFieldConfig {

    /**
     * 是否保存在es当中
     */
    boolean exist() default true;

    /**
     * 是否建立索引
     */
    boolean index() default true;

    /**
     * 字段名
     * 可为空，为空则使用原有字段名
     */
    String fieldName() default "";

    /**
     * 字段类型
     */
    FieldType type() default FieldType.Text;

    /**
     * 是否包含keyword字段
     * 只在type=Text的情况下生效
     */
    boolean isKeyword() default true;

    /**
     * 时间格式化
     * 只有在type=Date的情况下生效
     */
    String dateFormat() default "yyyy-MM-dd HH:mm:ss";

}
